﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class frmAsignarRol : cGlobal
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            this.CargarRoles();
        
        }
    }

    private void CargarRoles()
    {
        try
        {
            DataSet dts = objSeguridad.GetRoles();
            if (dts.Tables[0].Rows.Count > 0)
            {
                this.drproles.DataSource = dts.Tables[0];
                this.drproles.DataValueField = dts.Tables[0].Columns[0].ColumnName;
                this.drproles.DataTextField = dts.Tables[0].Columns[1].ColumnName;
            }
            else
            {
                this.drproles.DataSource = null;
                this.drproles.Items.Clear();
            }
            this.drproles.DataBind();
            this.drproles.Items.Insert(0, new ListItem("Seleccione...", "0"));
        }
        catch (Exception ex)
        {
            objJavaScript.jsAlert("No se pudieron cargar los roles:", Page);
       }
    }

    private void CargarConFig()
    {
        try
        {
            this.listdisponibles.DataSource = null;
            this.listAgregados.DataSource = null;
            this.listdisponibles.Items.Clear();
            this.listAgregados.Items.Clear();
        }
        catch (Exception ex)
        {
        }

        try
        {
            DataSet dts = objSeguridad.GetPermisosRol(0, Convert.ToInt16(this.drproles.SelectedValue));   
            if (dts.Tables[0].Rows.Count > 0)
            {
                this.listdisponibles.DataSource = dts.Tables[0];
                this.listdisponibles.DataValueField = dts.Tables[0].Columns[0].ColumnName;
                this.listdisponibles.DataTextField = dts.Tables[0].Columns[1].ColumnName;
                this.btnAdd.Enabled = true;  
            }
            else
            {
                this.listdisponibles.DataSource = null;
                this.btnAdd.Enabled = false;  
            }
            this.listdisponibles.DataBind();



           if (dts.Tables[1].Rows.Count > 0)
            {
                this.listAgregados.DataSource = dts.Tables[1];
                this.listAgregados.DataValueField = dts.Tables[1].Columns[0].ColumnName;
                this.listAgregados.DataTextField = dts.Tables[1].Columns[1].ColumnName;
                this.btnQuitar.Enabled = true;  
            }
            else
            {
                this.listAgregados.DataSource = null;
                this.btnQuitar.Enabled = false;
            }
            this.listAgregados.DataBind();

        }
        catch (Exception ex)
        {
            objJavaScript.jsAlert("No se pudieron cargar los Menus:", Page);
        }
    }

    protected void drproles_SelectedIndexChanged(object sender, EventArgs e)
    {
     
        CargarConFig();
    }
    protected void btnAdd_Click(object sender, EventArgs e)
    {
        int Test;

        Test = Convert.ToInt16(this.HidAsignar.Value);

        if (Test > 0)
        {
            try
            {
                objSeguridad.ActualizarPermisoRol(Convert.ToInt16(this.drproles.SelectedValue), Convert.ToInt16(this.listdisponibles.SelectedValue), ObelixTI.Seguridad.Accion.Insertar);
                CargarConFig();

                objJavaScript.jsAlert("La página ha sido agregada a los permisos del rol seleccionado.", Page);
            }
            catch (Exception ex)
            {
                objJavaScript.jsAlert("Ocrrio un error al asignar el menur al rol seleccionado.", Page);
                           }
            this.HidAsignar.Value = "0";
        }
        else 
        {
            objJavaScript.jsAlert("Es necesario seleccionar el menu que se va a agregar.", Page);
        }
  

       
    }
    protected void btnQuitar_Click(object sender, EventArgs e)
    {
        int Test;

        Test = Convert.ToInt16(this.HidQuitar.Value);

        if (Test > 0)
        {

            try
            {
                objSeguridad.ActualizarPermisoRol(Convert.ToInt16(this.drproles.SelectedValue), Convert.ToInt16(this.listAgregados.SelectedValue), ObelixTI.Seguridad.Accion.Eliminar);
                CargarConFig();

                objJavaScript.jsAlert("La página ha sido removida del rol seleccionado", Page);
            }
            catch (Exception ex)
            {

                objJavaScript.jsAlert("Ocurrio un error al remover el menu al rol seleccionado.", Page);
            }
            this.HidQuitar.Value = "0";
        }
        else
        {
            objJavaScript.jsAlert("Es necesario seleccionar el menu que se va a quitar", Page);

        }
    }
    protected void listdisponibles_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            this.HidAsignar.Value = this.listdisponibles.SelectedValue.ToString();     
         }
        catch (Exception ex)
        {
        }
    }
    protected void listAgregados_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            this.HidQuitar.Value = this.listAgregados.SelectedValue.ToString();
        }
        catch (Exception ex)
        {
        }
    }
}
